//
//  HistoryElement.m
//  CocOCaml
//
//	$Id: HistoryElement.m,v 1.1.1.1 2003/02/27 16:53:39 wneuman Exp $
//
//  Created by William D. Neumann on Thu Jan 16 2003.
//  Copyright (c) 2003 William D. Neumann. All rights reserved.
//
//	This program is free software; you can redistribute it and/or modify
//	it under the terms of the Artistic License as published by Larry
//	Wall, either version 2.0, or (at your option) any later version.
//
//	This program is distributed in the hope that it will be useful,
//	but WITHOUT ANY WARRANTY; without even the implied warranty of
//	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//	Artistic License for more details.
//
//	You should have received a copy of the Artistic License with this Kit,
//	in the file named "Artistic.clarified".  If not, I'll be glad to provide
//	one.
//

#import "HistoryElement.h"


@implementation HistoryElement

- (id)init
{
    return [self initWithText:@"" andIndex:0];
}

- (id)initWithText:(NSString *)newText
{
    return [self initWithText:newText andIndex:0];
}

- (id) initWithText:(NSString *)newText andIndex:(int)elementIndex
{
    if (self = [super init]) {
        text = [[NSString alloc] initWithString:newText];
        index = elementIndex;
    }
    return self;
}

- (void)setText:(NSString *)newText
{
    [newText retain];
    [text release];
    text = newText;
}

- (void)setIndex:(int)elementIndex
{
    index = elementIndex;
}

- (NSString *)getText
{
    return [NSString stringWithString:text];
}

- (int)getIndex
{
    return index;
}

- (int)compareIndex:(HistoryElement *)anElement
{
    int anIndex = [anElement getIndex];
    if (index < anIndex)
        return NSOrderedAscending;
    if (index > anIndex)
        return NSOrderedDescending;
    else
        return NSOrderedSame;
}

- (int)compareText:(HistoryElement *)anElement
{
    return [text caseInsensitiveCompare:[anElement getText]];
}

- (NSString *)description
{
        return [NSString stringWithFormat:@"History element %d: %s",index,text];
}

- (void)dealloc
{
    [text release];
    [super dealloc];
}

@end
